{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import os\n",
    "import cv2\n",
    "import numpy as np\n",
    "import matplotlib.pyplot as plt\n",
    "from IPython.display import *\n",
    "from collections import Counter\n",
    "import seaborn as sns\n",
    "import pandas as pd\n",
    "from tqdm import tqdm\n",
    "\n",
    "%matplotlib inline\n",
    "%config InlineBackend.figure_format = 'retina'\n",
    "IMAGE_DIR = 'image_contest_level_2_validate'\n",
    "CROP_DIR = 'crop_split2_test'\n",
    "\n",
    "from multiprocessing import Pool, Lock, Manager"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 数据并行预处理"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def f(index):\n",
    "    img = cv2.imread('%s/%d.png'%(IMAGE_DIR, index))\n",
    "    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n",
    "\n",
    "    eq = cv2.equalizeHist(gray)\n",
    "    b = cv2.medianBlur(eq, 9)\n",
    "    \n",
    "    m, n = img.shape[:2]\n",
    "    b2 = cv2.resize(b, (n//4, m//4))\n",
    "\n",
    "    m1 = cv2.morphologyEx(b2, cv2.MORPH_OPEN, np.ones((7, 40)))\n",
    "    m2 = cv2.morphologyEx(m1, cv2.MORPH_CLOSE, np.ones((4, 4)))\n",
    "    _, bw = cv2.threshold(m2, 127, 255, cv2.THRESH_BINARY_INV)\n",
    "    \n",
    "    bw = cv2.resize(bw, (n, m))\n",
    "\n",
    "    img2, ctrs, hier = cv2.findContours(bw, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)\n",
    "    if len(ctrs) > 3:\n",
    "        print index\n",
    "    \n",
    "    # 微调三个公式\n",
    "    d = 20\n",
    "    d2 = 5\n",
    "    imgs = []\n",
    "    sizes = []\n",
    "    for i, ctr in enumerate(ctrs):\n",
    "        x, y, w, h = cv2.boundingRect(ctr)\n",
    "        if w*h < 1000:\n",
    "            continue\n",
    "        roi = img[max(0, y-d):min(m, y+h+d),max(0, x-d):min(n, x+w+d)]\n",
    "        p, q, _ = roi.shape\n",
    "        \n",
    "        x = b[max(0, y-d):min(m, y+h+d),max(0, x-d):min(n, x+w+d)]\n",
    "        x = cv2.morphologyEx(x, cv2.MORPH_CLOSE, np.ones((3, 3)))\n",
    "        _, x = cv2.threshold(x, 127, 255, cv2.THRESH_BINARY_INV)\n",
    "        _, x, _ = cv2.findContours(x, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)\n",
    "        x, y, w, h = cv2.boundingRect(np.vstack(x))\n",
    "        roi2 = roi[max(0, y-d2):min(p, y+h+d2),max(0, x-d2):min(q, x+w+d2)]\n",
    "        imgs.append(roi2)\n",
    "        sizes.append(roi2.shape)\n",
    "        cv2.imwrite('%s/%d_%d.png'%(CROP_DIR, index, i), roi2)\n",
    "    \n",
    "    # 连接三个公式\n",
    "    sizes = np.array(sizes)\n",
    "    img = np.zeros((sizes[:,0].max(), sizes[:,1].sum()+(len(sizes)-1)*2, 3), dtype=np.uint8)\n",
    "    x = 0\n",
    "    for a in imgs[::-1]:\n",
    "        iw = a.shape[1]\n",
    "        img[:a.shape[0], x:x+iw] = a\n",
    "        x += iw + 2\n",
    "    \n",
    "    cv2.imwrite('%s/%d.png'%(CROP_DIR, index), img)\n",
    "    \n",
    "    return [index, len(sizes)]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 100000/100000 [24:26<00:00, 57.90it/s]"
     ]
    },
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "CPU times: user 20.6 s, sys: 3.27 s, total: 23.8 s\n",
      "Wall time: 24min 26s\n"
     ]
    },
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "\n"
     ]
    }
   ],
   "source": [
    "%%time\n",
    "\n",
    "try:\n",
    "    p\n",
    "except:\n",
    "    p = Pool(12)\n",
    "\n",
    "n = 100000\n",
    "if __name__ == '__main__':\n",
    "    rs = []\n",
    "    for r in tqdm(p.imap_unordered(f, range(n)), total=n):\n",
    "        rs.append(r)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "import struct\n",
    "import imghdr\n",
    "\n",
    "def get_image_size(fname):\n",
    "    '''Determine the image type of fhandle and return its size.\n",
    "    from draco'''\n",
    "    with open(fname, 'rb') as fhandle:\n",
    "        head = fhandle.read(24)\n",
    "        if len(head) != 24:\n",
    "            return\n",
    "        if imghdr.what(fname) == 'png':\n",
    "            check = struct.unpack('>i', head[4:8])[0]\n",
    "            if check != 0x0d0a1a0a:\n",
    "                return\n",
    "            width, height = struct.unpack('>ii', head[16:24])\n",
    "        elif imghdr.what(fname) == 'gif':\n",
    "            width, height = struct.unpack('<HH', head[6:10])\n",
    "        elif imghdr.what(fname) == 'jpeg':\n",
    "            try:\n",
    "                fhandle.seek(0) # Read 0xff next\n",
    "                size = 2\n",
    "                ftype = 0\n",
    "                while not 0xc0 <= ftype <= 0xcf:\n",
    "                    fhandle.seek(size, 1)\n",
    "                    byte = fhandle.read(1)\n",
    "                    while ord(byte) == 0xff:\n",
    "                        byte = fhandle.read(1)\n",
    "                    ftype = ord(byte)\n",
    "                    size = struct.unpack('>H', fhandle.read(2))[0] - 2\n",
    "                # We are at a SOFn block\n",
    "                fhandle.seek(1, 1)  # Skip `precision' byte.\n",
    "                height, width = struct.unpack('>HH', fhandle.read(4))\n",
    "            except Exception: #IGNORE:W0703\n",
    "                return\n",
    "        else:\n",
    "            return\n",
    "        return width, height"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "100%|██████████| 100000/100000 [00:01<00:00, 68454.66it/s]\n"
     ]
    }
   ],
   "source": [
    "sizes = []\n",
    "for i in tqdm(range(100000)):\n",
    "    fname = '%s/%d.png'%(CROP_DIR, i)\n",
    "    size = get_image_size(fname)\n",
    "    sizes.append(size)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "wmin wmax hmin hmax\n",
      "525 899 51 80\n"
     ]
    }
   ],
   "source": [
    "s = np.array(sizes)\n",
    "print 'wmin wmax hmin hmax'\n",
    "print s[:,0].min(), s[:,0].max(), s[:,1].min(), s[:,1].max()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.axes._subplots.AxesSubplot at 0x7fde08b11390>"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAsEAAAH1CAYAAAAXsiNSAAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAAWJQAAFiUBSVIk8AAAF+VJREFUeJzt3XGwpXV93/HPb9mtAgsSosKkzcoW07hJO03DkoGKlpnY\n1EwS4h9gRjMjq21TxZGqM4ntmJYSSWgmnRa1LqlNmDWT1ig6QxmITTu1a5FKBEwyzbgGRiCEUFGT\nrusmCwL76x/Pc9fD3XPv3ss9d8/e+329Zu6cvc/58dzn+fG7u+9z7nPObb33AABAJVvmfQAAAHCy\niWAAAMoRwQAAlCOCAQAoRwQDAFCOCAYAoBwRDABAOSIYAIByRDAAAOWIYAAAyhHBAACUI4IBAChH\nBAMAUI4IBgCgHBEMAEA5IhgAgHK2zmInrbWHk5yd5JFZ7A8AAJZwQZJDvfeda9nJTCI4ydmnn376\nubt27Tp3RvsDAIDjHDhwIEeOHFnzfmYVwY/s2rXr3Pvvv39GuwMAgONddNFF+cIXvvDIWvfjmmAA\nAMoRwQAAlCOCAQAoRwQDAFCOCAYAoBwRDABAOSIYAIByRDAAAOWIYAAAyhHBAACUI4IBAChHBAMA\nUI4IBgCgHBEMAEA5IhgAgHJEMAAA5YhgAADKEcEAAJQjggEAKEcEAwBQjggGAKAcEQwAQDkiGACA\nckQwAADliGAAAMoRwQAAlCOCAQAoRwQDAFCOCAYAoBwRDABAOSIYAIByRDAAAOWIYAAAyhHBAACU\nI4IBAChHBAMAUI4IBgCgHBEMAEA5IhgAgHJEMAAA5Wyd9wEAbBSXX375vA8BlrR///55HwJsKJ4J\nBgCgHBEMAEA5LocAeB6+efFb5n0ILHLWvbcc+3OV/z+T5wysjmeCAQAoRwQDAFCOCAYAoBwRDABA\nOSIYAIByRDAAAOWIYAAAyhHBAACUI4IBAChHBAMAUI4IBgCgHBEMAEA5IhgAgHJEMAAA5YhgAADK\nEcEAAJQjggEAKEcEAwBQjggGAKAcEQwAQDkiGACAckQwAADliGAAAMoRwQAAlCOCAQAoRwQDAFCO\nCAYAoBwRDABAOSIYAIByRDAAAOWIYAAAyhHBAACUI4IBAChHBAMAUI4IBgCgHBEMAEA5IhgAgHJE\nMAAA5YhgAADKEcEAAJQjggEAKEcEAwBQjggGAKAcEQwAQDkiGACAckQwAADliGAAAMoRwQAAlCOC\nAQAoRwQDAFCOCAYAoBwRDABAOSIYAIByRDAAAOWIYAAAyhHBAACUI4IBAChHBAMAUI4IBgCgHBEM\nAEA5IhgAgHJEMAAA5YhgAADKEcEAAJQjggEAKEcEAwBQjggGAKAcEQwAQDkiGACAckQwAADliGAA\nAMoRwQAAlCOCAQAoRwQDAFCOCAYAoBwRDABAOSIYAIByRDAAAOWIYAAAyhHBAACUI4IBAChHBAMA\nUI4IBgCgnK3zPoDN7vLLLz/25/3798/tOAAAZmUz9I1nggEAKEcEAwBQjggGAKAcEQwAQDkiGACA\nckQwAADliGAAAMoRwQAAlCOCAQAoRwQDAFCOCAYAoBwRDABAOSIYAIByRDAAAOWIYAAAyhHBAACU\nI4IBAChHBAMAUI4IBgCgHBEMAEA5IhgAgHJEMAAA5YhgAADKEcEAAJQjggEAKEcEAwBQjggGAKAc\nEQwAQDkiGACAckQwAADliGAAAMoRwQAAlCOCAQAoRwQDAFCOCAYAoBwRDABAOSIYAIByRDAAAOWI\nYAAAyhHBAACUI4IBAChHBAMAUI4IBgCgHBEMAEA5IhgAgHJEMAAA5YhgAADKEcEAAJQjggEAKEcE\nAwBQjggGAKAcEQwAQDkiGACAckQwAADliGAAAMoRwQAAlCOCAQAoRwQDAFCOCAYAoBwRDABAOSIY\nAIByRDAAAOWIYAAAyhHBAACUI4IBAChHBAMAUI4IBgCgHBEMAEA5IhgAgHJEMAAA5YhgAADKEcEA\nAJQjggEAKEcEAwBQjggGAKAcEQwAQDkiGACAckQwAADliGAAAMrZOu8DeL6efvrpfPSjH02SvOEN\nb8i2bdtmvu9nn302rbVs2bIlV155ZT7xiU885+tNjnvyySdz55135swzz8xLX/rSbNu2LTfccMPM\njgkAgNnZsBF822235ZZbbkmSnHHGGbnyyivXZd8LHnjggXz2s599ztebNu7w4cN54oknkiQ33njj\nzI4JAIDZ2ZCXQxw8eDAf+chHjn2+b9++HDx4cF32vWAhgBe+3qOPPjp13KS77rprJscEAMBsbcgI\n3rdvXw4fPnzs88OHD2ffvn3rsu9pDh8+nOuuu+6E4wAAODVtuAh+6KGHcvvttx+3/fbbb8/DDz+8\nLvueZq1fCwCA+dlQEdx7z969e3P06NHj7jt69Gj27t2b3vvM9w0AwOayoSL4c5/7XO67774l77/3\n3ntzzz33rMu+AQDYPFb17hCttfuXuOsVMziWZT399NO5+eabTzhu79692b1796reMm2l+16ryy+/\nfN2/BgA1+TcGVmdDPRMMAACzsKoI7r1fNO0jyZfW6fiO2bZtW972tredcNw111yz6l+csdJ9AwCw\nOWyoX5Zx6aWXZvfu3Uteu3vxxRfnkksuWZd9z8L+/fvXbd/A+vPjZk5l/o3hZNoMfx9uqMshWmt5\n+9vfni1bjj/sLVu25Jprrklrbeb7BgBgc9lwxbdz585cccUVx22/4oorsnPnznXZ91JjAQDYmDZc\nBCfJnj17sn379mOfb9++PXv27FmXfU+zffv2XH/99SccBwDAqWlDRvA555yTq6+++tjne/bsyTnn\nnLMu+15w2WWXPefr7dixY+q4Sa961atmckwAAMzWhnph3KTXve51OXLkyLE/r8e+n3322bTWsmXL\nllx11VW59dZbn/P1Jsc99dRTueOOO3LmmWfm/PPPz2mnnZb3vve9ee1rXzvTYwMAYO02bARv27Yt\nb3rTm07qvhdvWzzurW9967ocDwAAs7UhL4cAAIC1EMEAAJQjggEAKEcEAwBQjggGAKAcEQwAQDki\nGACAckQwAADliGAAAMoRwQAAlCOCAQAoRwQDAFCOCAYAoBwRDABAOSIYAIByRDAAAOWIYAAAyhHB\nAACUI4IBAChHBAMAUI4IBgCgHBEMAEA5IhgAgHJEMAAA5YhgAADKEcEAAJQjggEAKEcEAwBQjggG\nAKAcEQwAQDkiGACAckQwAADliGAAAMoRwQAAlCOCAQAoRwQDAFCOCAYAoBwRDABAOSIYAIByRDAA\nAOWIYAAAyhHBAACUI4IBAChHBAMAUI4IBgCgHBEMAEA5IhgAgHJEMAAA5YhgAADKEcEAAJQjggEA\nKEcEAwBQjggGAKAcEQwAQDkiGACAckQwAADliGAAAMoRwQAAlCOCAQAoRwQDAFCOCAYAoBwRDABA\nOSIYAIByRDAAAOWIYAAAyhHBAACUI4IBAChHBAMAUI4IBgCgHBEMAEA5IhgAgHJEMAAA5YhgAADK\nEcEAAJQjggEAKEcEAwBQjggGAKAcEQwAQDkiGACAckQwAADlbJ33AWx2+/fvn/chAADM1GboG88E\nAwBQjggGAKAcEQwAQDkiGACAckQwAADliGAAAMoRwQAAlCOCAQAoRwQDAFCOCAYAoBwRDABAOSIY\nAIByRDAAAOWIYAAAyhHBAACUI4IBAChHBAMAUI4IBgCgHBEMAEA5IhgAgHJEMAAA5YhgAADKEcEA\nAJQjggEAKEcEAwBQjggGAKAcEQwAQDkiGACAckQwAADliGAAAMoRwQAAlCOCAQAoRwQDAFCOCAYA\noBwRDABAOSIYAIByRDAAAOWIYAAAyhHBAACUI4IBAChHBAMAUI4IBgCgHBEMAEA5IhgAgHJEMAAA\n5YhgAADKEcEAAJQjggEAKEcEAwBQjggGAKAcEQwAQDkiGACAckQwAADliGAAAMoRwQAAlCOCAQAo\nRwQDAFCOCAYAoBwRDABAOSIYAIByRDAAAOWIYAAAyhHBAACUI4IBAChHBAMAUI4IBgCgHBEMAEA5\nIhgAgHJEMAAA5YhgAADKEcEAAJQjggEAKEcEAwBQjggGAKAcEQwAQDkiGACAckQwAADliGAAAMoR\nwQAAlCOCAQAoRwQDAFCOCAYAoBwRDABAOVvnfQAAG9FZ994y70NgGf7/ACfimWAAAMoRwQAAlONy\nCIAV2r9//7wPAYAZ8UwwAADliGAAAMoRwQAAlCOCAQAoRwQDAFCOCAYAoBwRDABAOSIYAIByRDAA\nAOWIYAAAyhHBAACUI4IBAChHBAMAUI4IBgCgHBEMAEA5IhgAgHJEMAAA5YhgAADKEcEAAJQjggEA\nKEcEAwBQjggGAKAcEQwAQDkiGACAckQwAADliGAAAMoRwQAAlCOCAQAoRwQDAFCOCAYAoBwRDABA\nOSIYAIByRDAAAOWIYAAAyhHBAACUI4IBAChHBAMAUI4IBgCgHBEMAEA5IhgAgHJa733tO2ntz04/\n/fRzd+3aNYNDAgCA6Q4cOJAjR478ee/9O9eyn1lF8MNJzk7yyJp3tvm8Yrz90lyPYmMzh7NhHtfO\nHM6GeVw7c7h25nA25jGPFyQ51HvfuZadzCSCWVpr7f4k6b1fNO9j2ajM4WyYx7Uzh7NhHtfOHK6d\nOZyNjTyPrgkGAKAcEQwAQDkiGACAckQwAADliGAAAMrx7hAAAJTjmWAAAMoRwQAAlCOCAQAoRwQD\nAFCOCAYAoBwRDABAOSIYAIByRPAqtNYea631KR9fWTTus0uM6621F07Z79Wttd9rrR1prX2ttfab\nrbXvOnlndnK11ra21t7WWrurtXawtXa0tfb11tpfmRjzgtbaDa21h1prT7bWHmmt/WJr7QVT9rel\ntfbu1tqBcezjrbUPtdZedHLP7ORZ4RyuaL2OY8vMYWvtgmW+P499TIy3Fqd4HvNoPU7RWjuvtXZT\na+3L478BD7XWPtBaO3/KWGtxCaucR2txitbay1tr/6m19tXW2lOttT9srf3T1tpxrbhZ1qJflrFC\nrbWW5KkkDyT5rUV3H+693zQx9sEkZyS5ecqubuy9Pzsx9l1J/m2SB5N8Msl5SX46yf9NclHv/c9m\neR7z1oYHAb+T5NVJ/ijJZ5J8Jcl3JnlX7/3pcdx/SXJFkv1J7k7yg0l+NMkdSa7oEwu3tfb+JNcm\n+UKS/5rkwiSvHz9/Ze/9qZNxbifLSuZwNet13GeZORz/4n3HMkPek+Qbvfe/No63FqdYzTxaj9O1\n1rYn+VyS70tyW5IDSb4/yU8m+WKSS3rvhyfGW4tTrGYercXpWmsvT/L5JGcl+XiSh5P8vSSXJdnX\ne3/zovGbYy323n2s4CPJuUl6kptXMPZQkk+tYNw5Sb6ZYbGdPbH99ePXumne570O83jLeG7vSbJl\niTGvGcd8IuMDtXH73nH76ya2/Y0kR5Pck2TbxPafG8e+c97nPKc5XM16LTeHy8zFq8dz/vnxc2tx\nNvNoPU4/17eM53T9ou3vG7e/eWKbtTibebQWp5/rR8dz+rGJbS3Jr47bf2QzrkWXQ6zceePtY8sN\naq2dnuGR1LLjRj+WZHuS/9B7P7Swsff+8SQPJfnpaT+G2KhaazuTXJ3ktt77L/fejy4x9KfG23/T\nx++W0b8eb980se2qDN+oN/XxWeTRB5P8xaKxG94q5nBF63VUag5P4J1JvpXkw+Pn1uLzs3gercfp\nzh1v7120/fPj7XdMbLMWl7aaebQWp3tNkkd673cubBjX2XsyfC+/ZWLsplmLmyawToKF64oeb62d\n31rb0aZc3zsx7k9bay9prb1s/FHNNLvH29+dct/dSV6c5Huf/yGfct6QYc39WjL8OLW19l3jj6cm\n7U7yTJL7Jzf23h9N8idJXrlobLJoDnvvRzL8qOUHWmtnzOwM5m+lc7jS9ZrUm8OpWmsXZPjx3sd7\n718dN1uLq7TEPFqP0y2c448u2v7j4+3/mthmLS5tNfNoLU73oiRfW7yx9/6NDOvrkonNm2YtiuCV\nW3j0+OsZrtf94ySHWmufaq19/5Rx/zLJV5M8kuQbbXgB02WL9vmy8fZPp3y9R8fbC9d64KeQi8bb\nr7bWPp3kYIZzf7y1ds3EuJcl+dqiR40LHk3y0okHFieaw5bkr6/5yE8dK53Dla7XpN4cLuXaJKcl\n+fcT26zF1Zs2j9bjFL33u5LsS3JNa+3DrbW/3Vr7cJKfSfKLvff7JoZbi0tY5Txai9P9SZJXtNbO\nmdzYWvueDPNw3sTmTbMWt87rC29An8oQtocyxO2Lk/xwhgvvL22tXdJ7/1KS38twrcvRDN9gL0py\naZI3Jvl0a+3v994/M+7zrPH2L6Z8vYUXQ5y9DucyLxeMt7dkuNzjn2SYg2uTfKi19lTv/dfHbUu9\nIHByXg6PY5/pvX/rBGM3iwvG2xPN4UrXa1JvDo8z/oX9liT39t4nn7GwFldhmXm0Hpf2DzP8e/GP\nx48k+Zne+39cNM5aXN5K59FanO4DSW5Kcntr7X0ZnhW+OMm7MlwOcdrE2E2zFkXwCo0/Enjfos0f\nbK39XJJfTvILSV7fh1c5/sqicTe31u5I8rHxvh9a2O06HvKpaCH6b++9v3dhY2vtYxleqfvPMzw6\nX828mMMcP4crXa/j9mpzOM2bMzxg/eCi7dbi6kydR+txWddluM7/fyT5dIYHtDe11o6OD2gXWIvL\nW9E8WotL+mCGZ22vTfLfxm2HMrxb1cfGPy/YNGvR5RBr9/4kz2Z4NfSSxhe7PZbk4vHFc8m3F9WZ\nU/6ThR8lfHMWB3mKOJrhG+I5DxJ6748luSvJha2178gwL9PmJDl+Xg4l2dom3h93mbGbwUrncCnT\n1mu1OXyO8XrqazM88/HxRXdbiyt0gnlcSun12Fp7R4ZnJX+l9/6a3vsvZXg1/e8k+bXW2hsnhluL\nS1jlPC6l9FrsvR/tvb87yY4ML9r/kSTfneF66jMyvIvVgk2zFkXwGo3P/B5MctwbRE/xxHi7sBi+\nPN7+1Sljd4y3f/z8j+6U80SG63+emXLfN8bbF2aYl5e01rZNGbcjyf/rvS9806xkDh+dct9GtdI5\nnGqJ9VptDhf78SQvT/Lhfvz7VVqLK7fcPE5lPeYdGS6b+/mFDeM7Bb0xw4OJX5oYay0ubTXzOJW1\nOOi9P957/+3e+38f5/Di8a7JF8FtmrUogteotfaSDL+k4MsnGLc1yfck+fr445hkeAeI5Lmvulzw\ndzNcL3NgRod6KrhnvH3llPsuTHIkw19Yd2e4VGf35IDW2ndneGT6+YnNU+dwfLb9B5P80cR8bwYr\nncOplliv1eZwsXdmeFDxq1PusxZXbrl5nMp6zI4kj/eJX6CUJL33J5M8nm+/k0FiLS5nNfM4lbW4\npIUXXP/niW2bZy3O6g2HN/tHkh/IxJtCj9u25NvXsP7suO1vZuINoSfGXjeO+9DEthdmePS6+Jdl\nXDWO3Tfv857xHH5fhh83fT7JWRPbf3g830+On/+dTH8j7g+N2/dMbDs/Q/gtfiPunx3H/qt5n/ec\n5nBF67XiHC6ak781nuOtS9xvLc5mHq3H6fPy+0meTPK9i7ZfnOTpJHdbizOfR2tx5fP67vE8//ei\n7ZtmLc59kjfKR4ZfxfhYkt/IcOH8B5L84fg/8TNJXjCOuynJ1zP8OsYbMvxK5HvGcV9Mcu6i/f7U\neN8DSW4cvxGfGvexY97nvQ7z+Avj+R7I8COqj4zne3DyL7B8+zfP/M8ML2L47fHzu5NsXbTPhd88\nc/8457+V4drZB5O8aN7nPI85XOl6rTqHE+e98A/fq5cZYy2ucR6txyXn7ScyPKg9NM7hDUl+M0PQ\n/WWSS63F2c6jtbjsPL4/yfVJ/l2SPxjP+8EkL5sydlOsxblP+kb5SPIPktyZ4ZnbZzJcyP27GV4I\nMvno5oeS3JrhPfe+leHtz34/yb9Isn2Jff9khmf2/jLD2458MsnL533O6ziXV2d4k+wnk/z5OF+L\nH8FvyfCbah7MEHiPjd+gZy2xz3+U5P+M+3wiw3tGnjfvc53XHK50vRafwxdneIbiD04wzlpc4zxa\nj8vO36uT3JHhiY9nknwlwwPbC63F2c+jtbjsHH4xQ6x+M8l9Sf5ZkjOXGLsp1mIbDw4AAMrwwjgA\nAMoRwQAAlCOCAQAoRwQDAFCOCAYAoBwRDABAOSIYAIByRDAAAOWIYAAAyhHBAACUI4IBAChHBAMA\nUI4IBgCgHBEMAEA5IhgAgHJEMAAA5YhgAADKEcEAAJTz/wGjQxLPnMNMFQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fde09907d10>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 250,
       "width": 352
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "sns.boxplot(s[:,0])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "<matplotlib.collections.PathCollection at 0x7fde089b9510>"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    },
    {
     "data": {
      "image/png": "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\nfrlQIi4iNeHlExd4dvCU4ymqk7eXn9i33VHZ1csXM66k5N3xXIqlirGY61YrfvkbP+CV0YtZl3u8\nt4PfePyDebXhdD8cfKiDwTcmMi6Xz7GRrr1S7vdcPgtO1rEaj9tifB71GS89NxNxtyb0EREpm+HQ\ndM7JbtzCM4Mneen1s47KJpfPZQa+fOJKsuSeaK2N0Wn7+axbrXjp9bOOknCAPxmZ4KXX1462zC6X\n/fCno5mTcMjv2EjXXqn2e66fBSfrWG3HbTE+j/qMVz8l4iJS9Y4MjeeV7MYtvHgs5Lhs3MLRofGi\nx1WI1THm0n6u61YrXjwWKuryUJ7jwKlS7fdibYNqOm6L8XnUZ7z6KREXkao2NhXOe5wskHJMcCbH\nz11jbCr7vGOFxlWI4+eu8drpyZzbd7puteK105M57//wQpTXTk86Xr6cx4FTxd7vxd4G1XDc5rMN\nsq1XMeqU0lMiLiJVrRy3Wp3eMi6nwdGJvMqVO+5Syncb5VKuWrZnMeMs1dCXSpZvfJnKFaNOKT0l\n4iJS1WZyvKJZqjbLEddquV7pTSp33KWU7zbKpVy1bM9ixlmKbVDp2znf+DKVK0adUnpKxEWkqrX4\nC54OoShtliOu1QJ5tl/uuEsp322US7lq2Z7FjLMU26DSt3O+8WUqV4w6pfSUiItIVSvHs3GdtFnu\nZ/Ye7OnIq1y54y6lfLdRLuWqZXsWM85SbINK3875xpepXDHqlNJTIi4iVW13e4D9ncG8y+d6VbSv\nM+hoUo9C4ypEX2eQRx7cmnP7TtetVjzy4Nac93/A78tpps1yHgdOFXu/F3sbVMNxm882yLZexahT\nSk+JuIhUvcMD3XhM9uXW8hh4+kCX47IeA4eWZ/wrZlyFWB1jLu3num614ukDXUVdHspzHDhVqv1e\nrG1QTcdtMT6P+oxXPyXiIlL1+rvaeO7g3pw6+uRMc089vMtR2eTyudzWzSeuJMN7sws6tTZGp+3n\ns2614qmHd/FYzzZHyz7e25HXNPe57IfP9HRkXS6fYyNde6Xa77l+FpysY7Udt8X4POozXv00xb2I\n1Izh0DRHh8Y5nuXZun2dQQ4NdN/WKWUqm2r5YsS1tj3AcblMMRZz3WrFS6+f5cVjoZRPRAn4fTx9\noCuvJHw1p/vByXLg/NhIpVz73clnwck6VvNxW4zPoz7jpeXmFPdKxEXKYGwqzHBompmFKC1+H/1d\n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\nAnERERERkRAoEBcRERERCYECcRERERGRECgQFxEREREJgQJxEREREZEQKBAXEREREQmBAnERERER\nkRAoEBcRERERCYECcRERERGRECgQFxEREREJgQJxEREREZEQKBAXEREREQmBAnERERERkRAoEBcR\nERERCYECcRERERGRECgQFxEREREJgQJxEREREZEQKBAXEREREQlBIIG4mZ0yM5fj35msdH+XJ50z\ns6YgyiIiIiIiEgXxUjMwMwM2A08BX8x6eirr7w7gReCzObJaKLUsIiIiIiJRUXIgDmwE6oFvOuc+\nsULaDmDQRzoRERERkZoWxKUpHd7jqeUSmdkaoHWldCIiIiIiq0EQZ8S3eI8vmtkWoAE465ybzZPu\ntJldAzQD55xz2ZeviIiIiIjUvCAC8fQZ8QcB8/6/YGYDwG86557KSvc7wO96/0+a2beAe5xzf+dn\nZ2Y2lOepXYUVW0REREQkPEEE4l8jFVxfBs4C7UA/8FPA683sdc65Z4HHgQ8BSeAlYD3weuDdwCNm\n9mPOuccCKI+IiIiISNUrORB3zl0CPp61+VNm9iHgfuBjwJ3OuTngk1npPmtmXwUOe8/t8bG/3lzb\nvTPlPQUWX0REREQkFOVc0OcgsAi8ablEzrmHSN3Audu7oVNEREREpOaVLRD3zoBfBBp9JB/3HhvK\nVR4RERERkWpStkDcmxllE/D8CuniQDcw4V3mIiIiIiJS80oOxM3sVm91zcxtMeA+78/D3rYfMbP6\nHFn8NrAOeKjUsoiIiIiIREUQs6b8B+B2M3sEOAFsAN4KvBb4W+CQl+59wM+a2V8DY6TmEX8DsBd4\nBvhoAGUREREREYmEIALxzwL7gR8DrgGuAE8DB4DPOucWvHT/C9gK9AH7gAVglNTUh7+vhX1ERERE\nZDUJYvrCrwNf95Huu8C7St2fiIiIiEgtKOf0hSIiIiIikocCcRERERGRECgQFxEREREJgQJxERER\nEZEQKBAXEREREQmBAnERERERkRAoEBcRERERCYECcRERERGRECgQFxEREREJgQJxEREREZEQKBAX\nEREREQmBAnERERERkRAoEBcRERERCYECcRERERGRECgQFxEREREJgQJxEREREZEQKBAXEREREQmB\nAnERERERkRAoEBcRERERCYECcRERERGRECgQFxEREREJgQJxEREREZEQKBAXEREREQmBAnERERER\nkRAoEBcRERERCYECcRERERGRECgQFxEREREJgQJxEREREZEQKBAXEREREQmBAnERERERkRAoEBcR\nERERCYECcRERERGRECgQFxEREREJgQJxEREREZEQKBAXEREREQmBAnERERERkRAoEBcRERERCYEC\ncRERERGRECgQFxEREREJQTzsAoiIyPJGxicZHJtgajZBS1Ocvq52dna0hl0sEREpkQJxEZEqNTg2\nwcGBUb57/PxVz+3pbONAfzd9Xe0hlExERIKgS1NERKrQ4WMn+bkHj+YMwgG+e/w8P/fgUR469kKF\nSyYiIkFRIC4iUmUGxya458iTJN3y6ZIO7j7yBINjE5UpmIiIBEqBuIhIlTk4MLpiEJ6WdHBoYLS8\nBRIRkbJQIC4iUkVGxifzXo6Sz9Hj5xkZnyxTiUREpFwUiIuIVJFiLzPR5SkiItGjQFxEpIpMzSYq\n+joREQmPAnERkSrS0lTcrLLFvk5ERMKjQFxEpIoUOy+45hMXEYkeBeIiIlVkZ0crezrbCnrN3s42\nrbQpIhJBCsRFRKrMgf5uYuYvbcxgf393eQskIiJloUBcRKTK9HW1c+++m1cMxmMG9+27RZeliIhE\nlO7uERGpQnft3sG2jc0cGhjlaI55xfd2trG/v1tBuIhIhAUSiJvZKWBrjqfGnXNbMtLFgF8Dfhno\nBM4DXwb+vXPuUhBlERGpFX1d7fR1tTMyPsng2ARTswlamuL0dbXrmnARkRpQciBuZgZsBp4Cvpj1\n9FTW378P7AeGgf8K3AB8ANhrZn3OublSyyMiUmt2drQq8BYRqUFBnBHfCNQD33TOfSJfIjPbCfwq\ncBT4J865BW/7MHA/qYD8gQDKIyIiIiJS9YK4WbPDezy1Qrp3AQY8kA7CPZ8CpoGfD6AsIiIiIiKR\nEEQgnr4G/EUz22JmO8ysKUe6273Ho5kbnXNXSF2qcquZNQdQHhERERGRqhfEpSnpM+IPkjrjDbBg\nZgPAbzrnnvK2Xec9ns6Rx0nvta8G/nG5nZnZUJ6ndvkusYiIiIhIyIIIxL8G/A5wGTgLtAP9wE8B\nrzez1znnngVagYRzbj5HHumbOtcFUB4RERERkapXciDuTTv48azNnzKzD5G6CfNjwJ2AK3Vf3v56\nc233zpT3BLEPEREREZFyK+fKmgeBReBN3t+XgbiZNeRI2+I9TpaxPCIiIiIiVaNsgbg3J/hFoNHb\n9Lz3mGvhnx3e48lylUdEREREpJqULRA3s2uATfwwAB/0Hl+XlW4NqUtKntPqmiIiIiKyWpQciJvZ\nrd7qmpnbYsB93p+HvceHgFnggJnVZyT/ILCWq1flFBERERGpWeZcafdQmtlXSM0R/ghwAtgAvBV4\nLfC3wI+nl67PuIFzmNRsK12kbuR8Hri9lDPiZnZuzZo1bTfddFPxlRERERERWcYzzzzDlStXzjvn\nNpWaVxCB+D8D9pO6vOQa4ArwNPBnwGezVtHEzN4HHAC6gUukAvIPO+fGSyzHcVLTH54oJZ8alZ5j\n/dlQSxFtasNgqB1LpzYsndowGGrH0qkNSxdGG14PXHbOdZaaUcmBuFS/9CJI+aZ+lJWpDYOhdiyd\n2rB0asNgqB1LpzYsXdTbsJzTF4qIiIiISB4KxEVEREREQqBAXEREREQkBArERURERERCoEBcRERE\nRCQEmjVFRERERCQEOiMuIiIiIhICBeIiIiIiIiFQIC4iIiIiEgIF4iIiIiIiIVAgLiIiIiISAgXi\nIiIiIiIhUCAuIiIiIhICBeIRYmanzMzl+HcmK93f5UnnzKwpR77vMbPHzeyKmb1sZn9qZtdWrmaV\nZ2ZxM/uAmX3TzC6aWdLMJsysISNNo5l9wsy+b2azZnbCzP6jmTXmyC9mZr9hZs94aV80s8+Y2frK\n1qxyfLahrz7rpV01bWhm1y/zGV36l5FefTGHItpR/TEHM+swswfM7HlvHPi+mR0ysy050qov5lBg\nG6of5mFmXWb2Z2Z21szmzOwfzeyAmV0Vr9ZKX9SCPhFhZgbMASPAF7OennLOPZCRdhRoBj6bI6t7\nnXOLGWl/HfhvwCjwMNAB/AzwEtDrnDsXZD2qgaW+jHwdeBPwHPAYcAbYBPy6c27BS/d/gZ8E/gYY\nBHqAtwNfBX7SZXx4zOwgsB8YBv4fcANwp/d3n3NurhJ1qxQ/bVhIn/XyXDVt6B38f3WZJB8GLjnn\ntnnp1RdzKKQd1R9zM7MW4NvAa4CvAM8ArwV+CngaeJ1zbiojvfpilkLaUP0wPzPrAr4LtAIPAceB\nNwNvBD7vnPvFrPS10Redc/oXgX9AG+CAz/pIexn4mo90G4BJUp19Xcb2O719PRB2vcvUln/s1e/D\nQCxPmrd5ab6E94XV2/4H3vZ/lbFtJ5AEvgPUZ2z/kJf218Kuc0htWEifXXVtuExbvMmr80e8v9UX\ng2lH9cfcdf0lr06/l7X94972X8zYpr5YehuqH+av7//26vUvMrYZ8N+97T9ei31Rl6ZER4f3eGq5\nRGa2htS3yWXTef4F0AJ8zjl3Ob3ROfcQ8H3gZ3L9HBRlZtYJvAf4inPufudcMk/Su7zH/+K8T6zn\nPu/x5zO2vYvUweIB551N93wKmM5KG3kFtKGvPutZVW24gl8D5oE/9P5WXyxOdjuqP+bW5j0ey9r+\nXe9xY8Y29cXcCmlD9cP83gaccM79RXqD188+TOqz/EsZaWumL9ZUkFXj0teZvWhmW8xsh+W43jsj\n3Wkzu8bMrvN+Nsvldu/xaI7nBoF24Mbii1yVfppUv/8jSP20bWbXej8XZrodSABDmRudcyeBF4C+\nrLSQ1Y7OuSukfva61cyaA6tB+Py2od8+C6uvDXMys+tJ/dT6kHPurLdZfbFAedpR/TG3dB3fnrX9\nJ7zHv83Ypr6YWyFtqH6Y33rg5eyNzrlLpPrX6zI210xfVCAeHelv0Q+Sun77B8BlM/uamb02R7rf\nAc4CJ4BLlrqh7o1ZeV7nPZ7Osb+T3uMNpRa8yvR6j2fN7BHgIqn6v2hmv5KR7jrg5axvz2kngc0Z\nX3BWakcDXl1yyauH3zb022dh9bVhPvuBOuDTGdvUFwuXqx3VH3Nwzn0T+DzwK2b2h2b2o2b2h8C/\nAf6jc+7vM5KrL+ZQYBuqH+b3ArDLzDZkbjSzblJt0ZGxuWb6YjysHUvBvkYquL5MKsBuB/pJ3Qzy\nejN7nXPuWeBxUtc9JUl9yNcDrwfeDTxiZj/mnHvMy7PVe5zOsb/0zTnrylCXMF3vPf4xqctv3k+q\nHfYDnzGzOefcg962fDeqZrbNlJc24ZybXyFtrbjee1ypDf32WVh9bXgVb9D4JeCYcy7zzI36YgGW\naUf1x/zeS2rM+GXvH8C/cc79j6x06ov5+W1D9cP8DgEPAH9uZh8ndXZ8N/DrpC5NqctIWzN9UYF4\nRHg/zXw8a/OnzOxDwP3Ax4A7XerO309mpfusmX0VOOw9tyedbRmLXK3SXz7+3Dn32+mNZnaY1F3s\n95A6U1FI26y2dvTVhn77rLd9tbVhLr9I6ovzp7K2qy8WJmc7qj8u63dJ3fcxADxC6kv1A2aW9L5U\np6kv5uerDdUPl/UpUmev9wPf8LZdJjWT22Hv/2k10xd1aUr0HQQWSc0QkJd3A+YpYLd3Qyf8sFOv\nzfGS9E86k0EUsookSX0oX/FlxTl3CvgmcIOZbSTVNrnaBa5um8tA3DLmz14mbS3w24b55Oqzq60N\nX8G7vn4/qTNAD2U9rb7o0wrtmM+q7o9m9qukztB+0jn3NufcfyI1y8TXgT8ys3dnJFdfzKHANsxn\nVfdDAOdc0jn3G8AOUpNJ/DiwndQ19s2kZnhLq5m+qEA84rwz4BeBqyawz2Hce0x3xue9x6050u7w\nHn9QfOmq0jip68ESOZ675D02kWqba8ysPke6HcAF51z6g+unHU/meC6q/LZhTnn67Gprw2w/AXQB\nf+iuns9WfdG/5doxJ/VHfpXUZYwfSW/wZtF6N6kvNP8pI636Ym6FtGFO6oc/5Jx70Tn3l865v/La\ncbf3VOaNmTXTFxWIR5yZXUNqEZXnV0gXB7qBCe+nMUjNjAKvvBM57Q2krp16JqCiVovveI99OZ67\nAbhC6sA5SOrSrdszE5jZdlLf0L+bsTlnO3q/PPQAz2W0eS3w24Y55emzq60Ns/0aqS82/z3Hc+qL\n/i3XjjmpP7IDeNFlLPQG4JybBV7kh7N8gPpiPoW0YU7qh8tKTwLwvzK21U5fDGpCcv0r7z/gVjIm\nrfe2xfjh9cy/5W37ETImrM9I+7teus9kbGsi9S0+e0Gfd3lpPx92vcvQjq8h9fPfd4HWjO39Xp0f\n9v6+jdyLBXzG2/4LGdu2kAo+sxcL+C0v7X8Iu94htaGvPrsa2zCrTW726vh/8jyvvhhMO6o/5m6X\n7wGzwI1Z23cDC8Cg+mKgbah+WFjb/oZX129lba+Zvhh6I+ufzzcqtWzuKeB/krqZ4xDwj14negxo\n9NI9AEyQWjr3E6SWr/+Ol+5poC0r37u850aAe72DwZyXx46w612mtvyYV+dnSP1k+AWvzhczD6T8\ncIWuR0ndXPOX3t+DQDwrz/QKXUNeu3+R1LXUo8D6sOscRhv67bOrtQ0z6p0egN+0TBr1xRLbUf0x\nb7v9S1JfrC97bfgJ4E9JBZYzwOvVF4NrQ/XDFdvyIPB7wO8D/+DVfRS4LkfamuiLoTe6/vl8o+Cf\nAX9B6gx2gtSNBUdJ3ZiU+Q1vD/B/SM3HOU9qasLvAR8FWvLk/VOkzm7OkJoO6GGgK+w6l7k930Nq\nIv9Z4LzXZtlnM2KkVvQaJRVknvIOEq158nwf8KSX5zipeWU7wq5rWG3ot8+u8jZsJ3Wm5h9WSKe+\nWGI7qj8u235vAr5K6gRMAjhD6sv1DeqLwbah+uGK7fg0qYB5Evh74G5gbZ60NdEXzSuciIiIiIhU\nkG7WFBEREREJgQJxEREREZEQKBAXEREREQmBAnERERERkRAoEBcRERERCYECcRERERGRECgQFxER\nEREJgQJxEREREZEQKBAXEREREQmBAnERERERkRAoEBcRERERCYECcRERERGRECgQFxEREREJgQJx\nEREREZEQKBAXEREREQmBAnERERERkRAoEBcRERERCYECcRERERGREPx/1Wm3rhDVBd8AAAAASUVO\nRK5CYII=\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fde08aa4790>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 250,
       "width": 369
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.scatter(s[:,0], s[:,1])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "95170"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "s[:,1].argmin()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\niQAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "Image('%s/%d.png'%(CROP_DIR, 95170))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 结果可视化"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "def disp2(img):\n",
    "    cv2.imwrite('a.png', img)\n",
    "    return display(Image('a.png'))\n",
    "\n",
    "\n",
    "def disp(img, txt=None, first=False):\n",
    "    global index\n",
    "    if first:\n",
    "        index = 1\n",
    "        plt.figure(figsize=(16, 9))\n",
    "    else:\n",
    "        index += 1\n",
    "    plt.subplot(4, 3, index)\n",
    "    if len(img.shape) == 2:\n",
    "        plt.imshow(img, cmap='gray')\n",
    "    else:\n",
    "        plt.imshow(img[:,:,::-1])\n",
    "    if txt:\n",
    "        plt.title(txt)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "# 技术原理\n",
    "\n",
    "* [转灰度图](http://docs.opencv.org/master/df/d9d/tutorial_py_colorspaces.html)\n",
    "* [二值化](http://docs.opencv.org/master/d7/d4d/tutorial_py_thresholding.html)\n",
    "* [直方图均衡](http://docs.opencv.org/master/d5/daf/tutorial_py_histogram_equalization.html)\n",
    "* [中值滤波](http://docs.opencv.org/master/d4/d13/tutorial_py_filtering.html)\n",
    "* [开运算](http://docs.opencv.org/master/d9/d61/tutorial_py_morphological_ops.html)\n",
    "* [轮廓查找](http://docs.opencv.org/master/d4/d73/tutorial_py_contours_begin.html)\n",
    "* [边界矩形](http://docs.opencv.org/master/dd/d49/tutorial_py_contour_features.html)\n",
    "\n",
    "参考链接：\n",
    "\n",
    "* http://docs.opencv.org/master/df/d9d/tutorial_py_colorspaces.html\n",
    "* http://docs.opencv.org/master/d7/d4d/tutorial_py_thresholding.html\n",
    "* http://docs.opencv.org/master/d5/daf/tutorial_py_histogram_equalization.html\n",
    "* http://docs.opencv.org/master/d4/d13/tutorial_py_filtering.html\n",
    "* http://docs.opencv.org/master/d9/d61/tutorial_py_morphological_ops.html\n",
    "* http://docs.opencv.org/master/d4/d73/tutorial_py_contours_begin.html\n",
    "* http://docs.opencv.org/master/dd/d49/tutorial_py_contour_features.html"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\n/n+YBae9r2+/LwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x7fde0875e990>"
      ]
     },
     "metadata": {
      "image/png": {
       "height": 280,
       "width": 776
      }
     },
     "output_type": "display_data"
    }
   ],
   "source": [
    "def plot(index):\n",
    "    global img, gray, b, eq, bw, m, n, m1, m2, r, roi, ctrs, d, d2\n",
    "    img = cv2.imread('%s/%d.png'%(IMAGE_DIR, index))\n",
    "    gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)\n",
    "\n",
    "    eq = cv2.equalizeHist(gray)\n",
    "    b = cv2.medianBlur(eq, 9)\n",
    "    \n",
    "    m, n = img.shape[:2]\n",
    "    b2 = cv2.resize(b, (n//4, m//4))\n",
    "\n",
    "    m1 = cv2.morphologyEx(b2, cv2.MORPH_OPEN, np.ones((7, 40)))\n",
    "    m2 = cv2.morphologyEx(m1, cv2.MORPH_CLOSE, np.ones((4, 4)))\n",
    "    _, bw = cv2.threshold(m2, 192, 255, cv2.THRESH_BINARY_INV)\n",
    "    \n",
    "    bw = cv2.resize(bw, (n, m))\n",
    "\n",
    "    r = img.copy()\n",
    "    img2, ctrs, hier = cv2.findContours(bw, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)\n",
    "    for ctr in ctrs:\n",
    "        x, y, w, h = cv2.boundingRect(ctr)\n",
    "        cv2.rectangle(r, (x, y), (x+w, y+h), (0, 255, 0), 10)\n",
    "    x, y, w, h = cv2.boundingRect(np.vstack(ctrs))\n",
    "    \n",
    "    disp(img, 'raw img', 1)\n",
    "    disp(eq, 'eq')\n",
    "    disp(b, 'blur')\n",
    "    disp(m1, 'm1')\n",
    "    disp(m2, 'm2')\n",
    "    disp(r, 'rect')\n",
    "    \n",
    "    # 微调三个公式\n",
    "    d = 20\n",
    "    d2 = 5\n",
    "    imgs = []\n",
    "    sizes = []\n",
    "    for i, ctr in enumerate(ctrs):\n",
    "        x, y, w, h = cv2.boundingRect(ctr)\n",
    "        roi = img[max(0, y-d):min(m, y+h+d),max(0, x-d):min(n, x+w+d)]\n",
    "        p, q, _ = roi.shape\n",
    "        \n",
    "        x = b[max(0, y-d):min(m, y+h+d),max(0, x-d):min(n, x+w+d)]\n",
    "        x = cv2.morphologyEx(x, cv2.MORPH_CLOSE, np.ones((3, 3)))\n",
    "        _, x = cv2.threshold(x, 127, 255, cv2.THRESH_BINARY_INV)\n",
    "        _, x, _ = cv2.findContours(x, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)\n",
    "        x, y, w, h = cv2.boundingRect(np.vstack(x))\n",
    "        roi2 = roi[max(0, y-d2):min(p, y+h+d2),max(0, x-d2):min(q, x+w+d2)]\n",
    "        imgs.append(roi2)\n",
    "        sizes.append(roi2.shape)\n",
    "    \n",
    "    # 连接三个公式\n",
    "    sizes = np.array(sizes)\n",
    "    img2 = np.zeros((sizes[:,0].max(), sizes[:,1].sum()+len(sizes)-1, 3), dtype=np.uint8)\n",
    "    x = 0\n",
    "    for a in imgs[::-1]:\n",
    "        w = a.shape[1]\n",
    "        img2[:a.shape[0], x:x+w] = a\n",
    "        x += w + 1\n",
    "    \n",
    "    return disp2(img2)\n",
    "    \n",
    "\n",
    "plot(95170)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "metadata": {
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfoAAABQCAAAAADUjuipAAAExElEQVR4Ae3BAW4a0YIEwHraL/X9\nj9vSrt7OAHbANhicj51kpmpMu20a0+5nhfoBY9r9qFA/YUy7bRrTbpvGtNumMe22aUy7bRrTbpvG\ntNumMe22aUy7bRrTbpvGtNumMe22aUz/iKjdA8b0raKeI9TufmP6TrGoJ4hFPS7UvWJR/4QxfadY\n1JdFfSxW9bBQWzSmC6lLoT4X6q2gzsWqvijUuaiTWNQj4qi2aEwXoi6E+kys6kIc1LlY1ZcEdSao\nk1CPiBe1QWO6kLoQ1CdiVRfiqM7EQX1JUL/Eor4qXtRTpP5gY7opFnVTHNS5OKlf4qi+JBZ1lMZB\nfU28qmeI+oON6aZY1S2xqnNxVOdiVfeIRZ2LRR3Fq/qKeFXPEPUHG9Ntsagb4qDOxUG9EdQ9YlHn\nYlWrOFNfEK9qg8Z0W6zqqjioc3FQ70V9IOpSLOpMHJV4px4RZ2qDxnRbrCrqI3FU5+Kg7hZ1KVb1\nS9xU94tzdSnqnzemT8Sqod6LkzoXq7pbqEuxql/iprpfnKvnCnVLrOo7jekTsWqod+KkLsSq7hXU\nG7GqV3Fb3S3O1TPF96iHjOkzsaiod+KkLsSi7hXqnVjVq7hUcaHuFefqC4L6VHyXesiYPhPUx+Kk\nLsSi7hWKqDOxqldxoRZxpu4V5+pxsahPxXept4K6YkyfCvWxOKo3grpX6kNBvYoLtYpf6l5xrh4W\nq/pUfJd6IxZ1xZg+l7oijuqNoO4S1IdiUSdxoY7iVd0rztXDYlGfi+9Sb8SqPjam3xIH9XWhPhaL\nOokLdSYO6k5xrh4W1LlQH4taxVVFnNQirqq7xKo+NqbfEgf1FEGdBEWc1JlY1Z1i0Tiqx0Wdi0Xd\nFh+rgzioo3hRq1jUveKgPjam3xSLeoqgjoJaxYv6JRb1maAEJRb1XxCL+kycFHFU18SqTqLuF6u6\nYkxXpO4Si3qKoI6COogX9UtQt8WqBCUW9V8Q1OeCehHqSeKgrhjTi9S5qPuEeoqgDoI6iVf1ItRt\ncVBiUbGou6RuCOoOqe8RB3XFmF6kzkXdKeo5gnonXtUD4qAIRah7BHVdqHukvkes6poxXRFK6nNR\nzxHUe/GiHhAHRaj7xaquirpL6peoZ4lVXTOmK0JF/aRY1HtxUo8JilD3i4P6banvEYu6akzXRP20\nWNU7cVIPinpcHNVfI6jrxnRDqJ8Uq3onTupbxEn9JYK6YUw3hPpRsah34qi+Rbyqv0PUTWO6Iagf\nFeq9OKhvEWfq3zCmG4L6WakPxEE9TRyUeKP+BWP6O8Winiauq3/BmP5wqQ/Eqp4lbqqvCuqGWNXT\njenPFuqNOKnniM/U18SqroqTerIx/QFiUR+IRZ2JM/UMcYd6XJzUFfGqvixWddOY/gSh7hOv6jni\nDnW/eKOuiZN6sjH9ZeJFPUt8qMSLul9cquvioJ5tTH+bOKmnifdqFUf1gDipP8eY/jbh//A/6qni\nXL2K+geM6e/zH6v/tfsdY/rr/MfR/9r9hjHttmlMu20a026bxrTbpjHttmlMu20a026bxrTbpjHt\ntmlMu20a026bxrTbpjHttmlMu20a026bxrTbpjHttmlMu20a026bxrTbpjHttmlMu20a026bxrTb\npv8Hop2JEEI+izYAAAAASUVORK5CYII=\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAALoAAABQCAAAAACLujDJAAACfklEQVRoBdXBQXYaSRAFwMjVv/9x\nc5XTgAwtGTBtJL+piBqrqrGqGquqsaoaq6qxqhqrqrGqGquqsaoaq6qxqhqrqrGqGquqsaoaq6qx\nqhrfIdoLQvsuNb5BnLWn4qR9kxrviw/tmbho36LG++JDeyY+tO9Q423xS3smfmnfoMb74kN7Kq7a\nWWg3aa+r8R3ipP1J/KbdpL2uxg9Juyc+azfRXlfjZwTtnrhpO6G9rsZjaX8vtPvil7YT7YAae2k3\nof21oN0XF+0NNXZCuwrtR8RF2wntgBo7QSM0QfsZQdsL2gE1doJGaIL2j8SmHVBjLzRCE7SjgnZY\nbNoBNfZC20QTtGPiph0Qm3ZAjb3QNtHEph0Se+1lsWk7sWkP1dgLGtHEph0Sn7RXxabtxKY9VGMv\ntKugHRN77WWxaVdx0h6q8Um0q9AOir32sti0qzhpD9X4JLS3xE57XWzahzhrD9XYC9p74qYdEJt2\nFhftoRp7QSPtr8VNOyI2bRMf2kM19oL2rmib0A4J7SQ+tIdqfBLtfyAu2mM1/o/ioj1W4wXR/qm4\naI/VeEG0t4V2X7RP4qw9UeMF0R4J7QVBuyton8RJe6LGe2LT/ihod8VJ24tNe6bGe2LTrmLTfhO0\nu+KkfRK0Z2q8JTbtJk7aV0G7K87aXmhP1XhLbNpNnLUvgnZfnLWb0J6r8ZbYtKu4aF8E7b44aTeh\n/UGNd8RJu4qL9kXQHgjaTrQ/qfGO2LSdOGuHRDuqxltC24uT9vNqfLu0f6HGqmqsqsaqaqyqxqpq\nrKrGqmqsqsaqaqyqxqpqrKrGqmqsqsaqaqyqxqpqrKrGqmqsqsaqaqyqxqpqrOo/HcTfAapfG2wA\nAAAASUVORK5CYII=\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    },
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAL4AAABQCAAAAACCUZCzAAACHUlEQVRoBdXBW3biQBBEwVtfuf/l\n5ldOi5cHW8Y0kuBURIXOKnRWobMKnVXorEJnFTqr0FmFzip0VqGzCp1V6KxCZxU6q9BZhX3IfECF\nPQgw71dhB2Jh3q7CBJk1YmHer8JW4sy8X4WtxIl5TAxmXxU2EifmMXFidlVhmswXsTB/EQuzrwqT\nBJgbMZg/iYXZV4VZYjBXAvMEMZhXCLOuwiyxMFcyzxCDeYkwqypME4OZJAbzEoFZU+FNxGBeIzAr\nKryLALNKDOZ3ArOiwlFk7ojBXMjciBPzO2FWVDiKMHcEmC8yJ+LMTKtwFGHuCcyFALMQV2ZWhYMI\nMHcE5kIsDOLGzKpwDLEwMqvECjOpwjHEF/OTuGMEmEkVjiH+Y34Q/zMgMJMqHEMsDAjMD+I/ZhBm\nVoVjiMEsBOYHcWNeVeEYAsyJAPOduDK/EOaxCgcRmDMB5htxYX4hMI9VOIjAnAkw34gLs06AeazC\nh4gzs04M5rEKTxNmR2JhrgTmRizMYxWeJjD7EQtzIcB8EWD+UOFpArNKgJkkBnMlzB1h/lLhaQKz\nSgxmjhjMlcy8CjsQg5kjwGxTYTuxMLNkNqqwnViY96uwnRjMB1TYTgzmAyp0VqGzCp1V+AwxmI0q\nfIY4MZtU+AxxYjap0FmFzip0VqGzCp1V6KxCZxU6q9BZhc4qdFahswqdVeisQmcVOqvQWYXOKnRW\nobMKnVXo7B9RcboB/bvEIwAAAABJRU5ErkJggg==\n",
      "text/plain": [
       "<IPython.core.display.Image object>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "for i, ctr in enumerate(ctrs):\n",
    "    x, y, w, h = cv2.boundingRect(ctr)\n",
    "    roi = img[max(0, y-d):min(m, y+h+d),max(0, x-d):min(n, x+w+d)]\n",
    "    roi3 = eq[max(0, y-d):min(m, y+h+d),max(0, x-d):min(n, x+w+d)]\n",
    "    \n",
    "    p, q, _ = roi.shape\n",
    "\n",
    "    x = b[max(0, y-d):min(m, y+h+d),max(0, x-d):min(n, x+w+d)]\n",
    "#     x = cv2.morphologyEx(x, cv2.MORPH_CLOSE, np.ones((3, 3)))\n",
    "#     _, x = cv2.threshold(x, 127, 255, cv2.THRESH_BINARY_INV)\n",
    "#     _, x, _ = cv2.findContours(x, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE)\n",
    "#     x, y, w, h = cv2.boundingRect(np.vstack(x))\n",
    "#     roi2 = roi3[max(0, y-d2):min(p, y+h+d2),max(0, x-d2):min(q, x+w+d2)]\n",
    "    disp2(x)\n",
    "#     disp2(roi2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 2",
   "language": "python",
   "name": "python2"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 2
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython2",
   "version": "2.7.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
